package com.news.dao;

import java.util.List;

import com.news.entity.News;

public interface NewsDao {
	// 查询全部新闻方法
	public List<News> queryAll();

	// 查询单个新闻方法，传入NewsId，返回News
	public News queryNews(int newsId);

	// 删除单个方法，传入NewsId，返回影响行数
	public int deleteNews(int newsId);

	// 删除单个或多个方法，传入NewsId数组，返回影响行数
	public int deleteNews(int[] newsId);

	// 修改单个方法，传入News实体类（修改后的内容），返回影响行数
	public int updateNews(News news);

	// 新增方法，传入News实体类，返回影响行数
	public int insertNews(News news);

	// like单条或多条动态sql查询,传入标题文本或者内容文本或作者，以及类型，根据选项不同，返回不同的List（标题匹配或正文匹配或作者匹配）
	public List<News> selectListNewsType(String newsType);// 根据类型查

	public List<News> selectListNewsHeadline(String newsHeadline);// 根据标题查

	public List<News> selectListNewsDetails(String newsDetails);// 根据内容查

	// 更新评论数量方法，传入id,返回影响行数
	public int selectNewsReviewAndUpdate(int newsId);

	// 根据like模糊查询新闻查询评论方法，传入一个news新闻，返回一个Review评论集合
	public List<News> likeSelectListReview(News news);

	// 查询热度最多的前几个
	public List<News> queryNewsHeatNum(int num);

	// 查询评论最高的前几个
	public List<News> queryNewsReviewNum(int num);

	// 查询一个类型的前几个
	public List<News> queryNewsTypeNum(String str, int num);

	// 查询随机几条新闻方法
	public List<News> likeSelectListNewsNum(int num);

	// 分页查询
	public List<News> queryNewsPageBeanList(String newsType,int num, int pageSize);

	public int count(String newsType);

}
